The meeting graph: a new model for loop cyclic register allocation

نویسندگان

  • Christine Eisenbeis
  • Sylvain Lelait
  • Bruno Marmol
چکیده

Register allocation is a compiler phase in which the gains can be essential in achieving performance on new architec-tures exploiting instruction level parallelism. We focus our attention on loops and improve the existing methods by introducing a new kind of graph. We model loop unrolling and register allocation together in a common framework, called the meeting graph. We expect our results to signiicantly improve loop register allocation while keeping the amount of code replication low. As a byproduct, we present an optimal algorithm for allocating loop variables to a rotating register le, as well as a new heuristic for loop variables spilling. 1 Introduction The eeciency of register allocation is a crucial problem in modern microprocessors, where the increasing gap between the internal clock cycle and memory latency exacerbates the need to keep the variables in registers and to avoid spill code. In this paper, we address the important problem of loop register allocation and spilling. The two main facts that have motivated our work are the following. First, the usual interference graphs resulting from loop code are circular interval graphs (CIG) 8], on which usual graph problems are known to be easier than on general graphs 6]. Second, loop software pipelining 10], that is necessary to exploit the instruction level parallelism, generates variable lifetimes that may span more than one iteration, enforcing software (loop unrolling 10, 4]) or hardware (rotating registers le 13]) techniques to be used. These two facts have always been treated separately. Our starting point was the following question : what is the eeect of loop unrolling on the interference graph ? Especially, how does its chromatic number evolve with loop unrolling ? To study this question, we have used a new kind of graph, that we call the meeting graph. Its main property is that, in addition to all information contained in the interference graph, it takes into account the loop structure of the code. On the basis of the meeting graph, this paper presents the following results.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The meeting graph : a new model for loop cyclic register allocation Christine

Register allocation is a compiler phase in which the gains can be essential in achieving performance on new architectures exploiting instruction level parallelism. We focus our attention on loops and improve the existing methods by introducing a new kind of graph. We model loop unrolling and register allocation together in a common framework, called the meeting graph. We expect that our results...

متن کامل

On a Graph-theoretical Model for Cyclic Register Allocation

In the process of compiling a computer programme, we consider the problem of allocating variables to registers within a loop. It can be formulated as a coloring problem in a circular arc graph (intersection graph of a family F of intervals on a circle). We consider the meeting graph of F introduced by Eisenbeis, Lelait and Marmol. Proceedings of the Fifth Workshop on Compilers for Parallel Comp...

متن کامل

Decomposing Meeting Graph Circuits to Minimise Kernel Loop Unrolling

This article studies an important open problem in backend compilation regarding loop unrolling after periodic register allocation. Although software pipelining is a powerful technique to extract fine-grain parallelism, variables can stay alive across more than one kernel iteration, which is challenging for code generation. The classical software solution that does not alter the computation thro...

متن کامل

Using the Meeting Graph Framework to Minimise Kernel Loop Unrolling for Scheduled Loops

This paper improves our previous research effort [1] by providing an efficient method for kernel loop unrolling minimisation in the case of already scheduled loops, where circular lifetime intervals are known. When loops are software pipelined, the number of values simultaneously alive becomes exactly known giving better opportunities for kernel loop unrolling. Furthermore, fixing circular life...

متن کامل

Combined Code Motion and Register Allocation Using the Value State Dependence Graph

We define the Value State Dependence Graph (VSDG). The VSDG is a form of the Value Dependence Graph (VDG) extended by the addition of state dependence edges to model sequentialised computation. These express store dependencies and loop termination dependencies of the original program. We also exploit them to express the additional serialization inherent in producing final object code. The centr...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995